home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <libraries/dos.h>
- #include <workbench/workbench.h>
- #include <workbench/startup.h>
-
- #include <clib/alib_protos.h>
- #include <clib/exec_protos.h>
- #include <clib/dos_protos.h>
- #include <clib/icon_protos.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- struct Library *IconBase=NULL;
- void sr(char *s);
-
- char source[200];
- char destination[200];
- char itype[200];
- UBYTE tooltype[40][80];
- char toolfilename[200];
- void InitTypes(char *s);
- UBYTE *tools[40];
-
- main(int argc,char *argv[])
- {
- char *s;
- int i;
- UBYTE mytype;
- struct DiskObject *src;
- struct DiskObject *dst;
- struct Gadget *srcgad;
- struct DiskObject new;
- BOOL success=FALSE;
- for(i=0;i<39;i++)
- tools[i]=&tooltype[i];
- if(argc!=5)
- {
- printf("NewObj version 1.0, written by Joseph Hodge\n");
- printf("usage: NewObj <source.info> <destination.info> <type> [toolfilename]\n");
- printf(" ie: NewObj Serial.info BBS:Node1/Serial.info DRAWER RAM:tools\n");
- printf("\n");
- printf("types: DISK\n");
- printf(" DRAWER\n");
- printf(" TOOL\n");
- printf(" PROJECT\n");
- printf("\n\n");
- exit(0);
- }
- strcpy(source,argv[1]);
- strcpy(destination,argv[2]);
- sr(source);
- sr(destination);
- strcpy(itype,argv[3]);
- sr(itype);
- mytype=WBTOOL;
- if(!strnicmp(itype,"DRAWER",6)) mytype=WBDRAWER;
- if(!strnicmp(itype,"DISK",4)) mytype=WBDISK;
- if(!strnicmp(itype,"TOOL",4)) mytype=WBTOOL;
- if(!strnicmp(itype,"PROJECT",7)) mytype=WBPROJECT;
-
- strcpy(toolfilename,argv[4]);
- sr(toolfilename);
- InitTypes(toolfilename);
- i=strlen(source)-1;
- while(i>=0)
- {
- if(source[i]=='.') break;
- i--;
- }
- if(i) source[i]='\0';
- i=strlen(destination)-1;
- while(i>=0)
- {
- if(destination[i]=='.') break;
- i--;
- }
- if(i) destination[i]='\0';
-
- IconBase=OpenLibrary("icon.library",0L);
- if(src=GetDiskObject(source))
- {
-
- srcgad=(struct Gadget *)&src->do_Gadget;
- CopyMem(src,&new,sizeof(struct DiskObject));
- new.do_Gadget.Width=srcgad->Width;
- new.do_Gadget.Height=srcgad->Height;
- new.do_Gadget.Flags=srcgad->Flags;
- new.do_Gadget.Activation=srcgad->Activation;
- new.do_Gadget.GadgetType=srcgad->GadgetType;
- new.do_Gadget.GadgetRender=srcgad->GadgetRender;
- new.do_Gadget.SelectRender=srcgad->SelectRender;
- InitTypes(toolfilename);
- new.do_ToolTypes=(APTR)tools;
- new.do_Type= mytype;
- new.do_CurrentX=NO_ICON_POSITION;
- new.do_CurrentY=NO_ICON_POSITION;
- PutDiskObject(destination,(struct DiskObject *)&new);
- FreeDiskObject(src);
- }
- CloseLibrary(IconBase);
- exit(0);
- }
- void InitTypes(char *s)
- {
- FILE *fi;
- register int i=0;
- int j=0;
- char image[100];
- fi=fopen(s,"r");
- if(fi!=NULL)
- {
- while(fgets(image,80,fi)!=NULL && i<39)
- {
- sr(image); strcpy(&tooltype[i][0],image);
- i++;
- }
- fclose(fi);
- }
- tools[i]=NULL;
- }
- void sr(char *s)
- {
- register int i;
- i=strlen(s)-1;
- while(i>-1)
- {
- if(*(s+i)<=32) *(s+i)='\0'; else break;
- i--;
- }
- }
-